import axios from 'axios';
import { ElMessage } from 'element-plus'
// 定义一个变量，记录公共的前缀，baseURL
const baseURL = '/api';

// 创建 axios 实例
const instance = axios.create({ baseURL });
//请求拦截器
import { useTokenStore } from '@/stores/token';
instance.interceptors.request.use(
    (config)=>{
        //请求前回调.
        const tokenStore=useTokenStore();
        if(tokenStore.token){
            config.headers.Authorization=tokenStore.token;
        }
        return config;
    },
    (err)=>{
        //错误回调
        Promise.reject(err);
    }
)
import router from '@/router'
// 添加响应拦截器
instance.interceptors.response.use(
    result => {
        //判断业务状态码
        if(result.data.code===0){
            return result.data;
        }
        ElMessage.error(result.data.msg?result.data.msg:'服务异常')
        return Promise.reject(result.data);

    },
    err => {
        if(err.response.status===401){
            ElMessage.error('请先登录')
            router.push('/login')
        }
        else{
            ElMessage.error('服务异常');
        }
        return Promise.reject(err); // 将异步状态转化为失败状态
    }
);

// 导出实例
export default instance;